The field of the present invention relates to data reading devices, such as barcode scanners and other barcode reading devices. In particular, barcode readers are described herein which employ methods whereby the capture rate of reading labels with add-ons is improved without sacrificing throughput with respect to non-add-on labels.
Barcode labels encode information in a variety of formats, i.e., symbologies, and are commonly employed in applications such as inventory control systems and, most familiarly, affixed to consumer goods for retail store check-out, among others. Typically, the information encoded on each label uniquely identifies the product or product line. Such information, once decoded, may be used to identify other information, e.g., price, associated with the labeled object.
A barcode label typically comprises a series of parallel dark bars of varying widths with intervening light spaces, also of varying widths. Character information (which can, e.g., be alpha-numeric) is encoded in the labels by the specific sequence of bars and spaces with groupings of bars and spaces representing the character information. The precise nature of the representation depends on the particular barcode symbology in use.
One traditional symbology is the Universal Product Code (UPC) label in which each character is made up of two bars and two interleaved spaces. The width of each character is measured in units called “modules” with each character being seven modules in width. The width of any particular bar or space within the character representation is between one and four modules. The character value depends on the relative width in modules of the two bars and two spaces it comprises. For example, indicating bars with a 1 and spaces with a 0, a sequence of 111 would represent a bar that is three modules in width. The character value 5 may be represented as 0110001, i.e., one space that is 1 module in width, one bar that is 2 modules in width, one space that is 3 modules in width, and one bar that is one module in width, respectively. Likewise, the character 3 may be represented as 0111101.
With respect to the UPC label symbology alone there are many variations, such as UPC-A, UPC-E, etc. With the exception of UPC-E labels, the UPC symbologies comprise right and left segment halves. In addition to the UPC formats, a variety of other label formats exist which vary, among other ways, in structure, content, parity requirements, and type of feature characters. Code 39 and Code 128, for example are both non-segmented label formats, i.e., they have no center feature characters separating two or more segments of bars. Furthermore, many new label encoding schemes have been developed which have differing pattern structures for the dark and light areas. Exemplary of these newer code types are the stacked bar code formats referred to as Code 49 and PDF 417.
As indicated previously, with respect to the traditional symbologies such as UPC, the character information encoded in the barcode is represented by the specific sequence of bar and space widths. In addition to data characters, many labels utilize feature characters, such as center or guard characters, as delimiters or to separate segments of the label. Most UPC labels, as noted above, have left and right segment halves. These segment halves are separated by a center band character that typically comprises two single module bars and three interleaved single module spaces. The beginning and end of the label are delimited by a pair of guard characters, each of which typically comprises two single module bars and one interleaved, single module space. The bar/space representations of these feature characters are unique from that of data characters to enhance detection and decoding capability. Furthermore, an unprinted margin area or white space is typically located outwardly of the two guard characters. In a further variation, a typical UPC/EAN barcode may or may not also include an additional piece of information in the form of a second, adjacent barcode called an “add-on” located beyond the white space margin beyond the end guard character.
Optical scanning systems and other data reading systems, e.g., barcode readers, use various devices and methods for the purpose of reading such labels, identifying the particular label format, and decoding the information stored in the label. Common types of barcode readers include spot scanners and line scanners. In either case, one or more light sources, such as a laser or laser diode, are utilized to scan the label with a collection subsystem detecting at least a portion of the light reflected from the label, distinguishing between dark and light areas, and converting the optical information into an electronic signal that may be recognized by a computer or other electronic system.
In spot scanners, a reading spot is systematically moved across the barcode, either manually or automatically. The resultant paths followed by the scanned illumination beam are typically referred to as scan lines. A photodetector monitors the reflected or back-scattered light from each scan line. The photodetector may generate a high current when a large amount of light scattered from the barcode impinges on the detector, as from a light space, and likewise may produce a lower current when a small amount of light scattered from the barcode impinges on the photodetector, as from a dark bar.
With respect to line scanner systems, the barcode is focused onto a multi-element linear and the image of the barcode is detected. Though some imaging systems employ ambient light to illuminate the barcode, a light source may also illuminate the barcode to provide the required signal response corresponding to the image. The imaging optics which produce an image of the barcode on the photodetector array can alternatively be thought of as projecting an image of the photodetector array (a “virtual scan line”) into the scan volume in a manner completely analogous to the real scan line produced by a spot scanner. Further, scan pattern generating optics may be used to project multiple virtual scan lines into the scan volume in various directions and at varying orientations, thereby generating a virtual scan pattern, once again analogous to the real scan pattern produced by a spot scanner. If an areal photodetector array is employed, the virtual scan lines are formed by a combination of optics and the electronic selection and re-ordering of the values of certain pixels from the array in order to form the virtual scan lines. Virtual scan line systems are disclosed in U.S. Pat. Nos. 5,446,271 and 6,152,368 hereby incorporated by reference.
Regardless of which type of barcode reader is used, a raw electronic signal is generated from which the relative widths of the bars and spaces must be extracted. The electronic signal that is generated typically comprises a signal wherein voltage alternates between two voltage levels, one representative of the dark bars and the other representative of the light spaces. The temporal widths of these alternating pulses of high and low voltage levels correspond to the spatial widths of the bars and spaces. High-to-low or low-to-high transitions in the electronic signal voltage, representing edges of the bars and spaces (i.e., elements) in the barcode, may be detected by any of a number of means well known in the art. A common and well-known technique for edge detection is through the use of a derivative based signal processor such as is described by example in U.S. Pat. No. 4,000,397 entitled “Signal Processor Method and Apparatus” issued in the name of Hebert et al. and owned by the owner of the present application, which patent is hereby incorporated by reference as if fully set forth herein. The temporal sequence of alternating voltage pulses of varying widths comprising the electronic signal is then presented to an electronic decoding apparatus for decoding the information encoded in the barcode.
As a practical matter, recovering information from optical code labels poses many difficulties that must be overcome by a scanning system. For example, in order to read a label completely, i.e., from left guard character or margin to right guard character or margin, in a single optical pass, the label must be properly oriented with respect to the scanning beam. Early prior art scanner systems depended upon individual scan lines extending across the entire barcode for the barcode to be successfully read. Failure to read in a single pass in such systems would require the object to be re-positioned and re-scanned until a successful read was obtained. These systems presented difficulties and inefficiencies in real-time, practical applications wherein the orientation of a barcode vis-a-vis the scanner was hard to control.
Even where a label is not scanned completely in a single read, the typical thirty to forty scans of the label generated from an omnidirectional scanning system typically provide some partial label information in each of multiple scan lines. Present systems incorporate specialized piecing mechanisms, comprising software or electronics, that have been developed and are capable of taking partial portions of barcodes and assembling them into a complete code, a process commonly known as stitching. Further details regarding exemplary stitching methods and systems may be found in U.S. Pat. No. 5,493,108, entitled “Method and Apparatus for Recognizing and Assembling Optical Code Labels” and issued in the name of inventors Craig D. Cherry and Donald D. Dieball, which is hereby incorporated by reference as if fully set forth herein.
As indicated previously, a typical UPC/EAN barcode, as well as certain other symbologies, may or may not include an additional piece of information in the form of a second, adjacent barcode called an “add-on”. In the case where an optional add-on is present, it typically provides information that is supplemental, though generally not critical, to that provided in the base label alone. For example, with respect to retail goods, a typical base label (with or without add-on) may contain information regarding a manufacturer and the item identifier. This information, once decoded, may be used to look up and register price information, to adjust inventory quantities, etc. The add-on label may provide additional detailed information that may be used for inventory, statistical tracking, and other reasons. For example, with respect to periodical materials, the add-on may provide information regarding volume numbers, months, etc. Similarly, with respect to greeting cards, an add-on may provide seasonal references.
Whether or not an add-on does accompany a particular label, the general structure of the base label itself remains defined by the particular symbology. That is, for example, a UPC base label has the same general structure whether or not an add-on is present (i.e., start and end characters with the same characteristics, center characters with the same characteristics where applicable, the same number of data characters defined by the same relationships, etc.). Scanning systems typically use such symbology characteristics to identify when a valid read of label information has been obtained. There is typically no separate character or characteristic within a base label to indicate that an add-on is present.
Since the scanner typically does not “know” whether or not an add-on portion is present with respect to a particular label being scanned, it is possible that the scanner could read the appropriate number and position for start, end, center and data characters in a base label and think that it has identified a complete label. Thus, should a scan line(s) cross the base label portion without crossing the add-on portion, the system may decode the base label portion and assume that the complete label has been decoded. Indeed, even where partial scans of the label are stitched together, the possibility may exist that the add-on portion of the label is missed while the base label information is pieced together from multiple scans.
The capability of an omnidirectional barcode scanner to capture both the “base”, e.g., standard UPO/EAN 12/13 digit code, along with the add-on is degraded by the random nature of the label crossing the various scan lines; for example, the label may be mis-framed and/or read diagonally across the base label portion without the add-on portion being scanned. In such cases, data from the add-on portion may be missed entirely on one or more scans of the label. In short, there is no guarantee that both the base and add-on portions of the label will be scanned successfully in any one pass of the labeled item past the scanner, let alone in the first pass. This is particularly problematic since a primary goal of a scanner system is to achieve a high first pass read rate with optimum throughput.
The above situation presents a conflict for scanner system designers. On the one hand, if it is desired to capture the add-on data reliably with the base label data, then the scanner must not consider that the scanning task for a particular label is finished until it has a high degree of confidence that no add-on data exists with that label. On the other hand, if it is desired to have the optimal read rate for labels, then the scanner preferably accepts labels once they are successfully read without requiring further scanning to search for an add-on that may not exist.
In the past, scanner designers have identified two primary techniques in an attempt to address this conflict.
In one technique, a programmable number of extra base label reads is utilized under the assumption that if the number of reads of the base label is increased, then the chances that add-on information would show up in at least one read is increased. Of course, the disadvantage of this technique lies in the fact that it reduces the possibility for a successful first pass read rate for labels without add-ons present. If the number of reads required is increased from one, first pass read rate, and thus overall system throughput, degrades rapidly for all non-add-on labels.
In another technique that has been used, a programmable mode looks for specific data in the base label that may be associated with an add-on label. The disadvantage of this technique is that all base label data for any labels which incorporate an add-on must be programmed into the scanner before installation or must be configured in the scanner by the customer through programming labels or an interface connection. While the scanner can be programmed with this information, it does require significant additional memory, as well as additional processing time for add-on checks to be performed, thus increasing the cost of the scanner and decreasing efficiency. Also, where customer programming is required, such programming may be cumbersome and, if done incorrectly or not at all, leads to susceptibility to inaccurate processing of label information where add-ons are present. More problematic, however, is the fact that symbologies may change over time with new symbologies being created and others being revised to incorporate add-on information. Thus, programming information would need to be kept up to date and updated regularly in all installations for optimum performance.
Accordingly, there is a need for a scanner system that offers improved capture rate of add-on label information without sacrificing throughput and first pass read rate of non-add-on labels.